#ifndef __BMP_FILE_H__ 
#define __BMP_FILE_H__

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* almacena la informacion del header del archivo BM. */
typedef struct bmpInfo *bmpInfoType;


/* Lee el header de un archivo BMP y lo guarda en una estructura de tipo
 * bmpInfoType
 */
int readBMPInfo(FILE *file, bmpInfoType *resp);

/* Lee la informacion almacenada en la estructura bmpInfoType y escribe
 * el header BMP en un archivo
 */
int writeBMPInfo(FILE *file, bmpInfoType bmpInfo);

/* Lee del archivo BMP la informacion de los pixels y los almacena en un buffer */
int readBMPData2 (char *data, int imageSize, FILE *input);

/* Lee el buffer que almacena los pixels y los guarda en un archivo */
int writeBMPData2 (char *data, int imageSize, FILE *output);

/* Devuelve la altura del bitmap */
int getHeight(bmpInfoType bmpInfo);

/* Actualiza la altura del bitmap */
int setHeight(bmpInfoType bmpInfo, int height);

/* Devuelve el ancho del bitmap */
int getWidth(bmpInfoType bmpInfo);

/* Actualiza el ancho del bitmap */
int setWidth(bmpInfoType bmpInfo, int width);

/* Devuelve el offset a partir del cual estan los pixeles de la imagen */
int getOffset(bmpInfoType bmpInfo);

/* Devuelve el tamaño en bytes de la image propiamente dicha */
int getImageSize( bmpInfoType bmpInfo );

/* Devuelve cero si la imagen no esta comprimida. */
int getImageCompression( bmpInfoType bmpInfo );
#endif




